import React from 'react';

export function CopyIcon({size = 16}: {readonly size?: number}) {
	return (
		<svg
			width={size}
			height={size}
			viewBox="0 0 18 18"
			fill="none"
			xmlns="http://www.w3.org/2000/svg"
		>
			<path
				d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z"
				stroke="currentColor"
				strokeWidth="1.5"
				strokeLinecap="round"
				strokeLinejoin="round"
			/>
			<path
				d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097"
				stroke="currentColor"
				strokeWidth="1.5"
				strokeLinecap="round"
				strokeLinejoin="round"
			/>
		</svg>
	);
}

export function OpenAIIcon({size = 16}: {readonly size?: number}) {
	return (
		<svg
			fill="currentColor"
			fillRule="evenodd"
			height={size}
			viewBox="0 0 24 24"
			width={size}
			xmlns="http://www.w3.org/2000/svg"
		>
			<title>OpenAI</title>
			<path d="M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z" />
		</svg>
	);
}

export function AnthropicIcon({size = 16}: {readonly size?: number}) {
	return (
		<svg
			fill="currentColor"
			fillRule="evenodd"
			height={size}
			viewBox="0 0 24 24"
			width={size}
			xmlns="http://www.w3.org/2000/svg"
		>
			<title>Anthropic</title>
			<path d="M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z" />
		</svg>
	);
}

export function CursorIcon({size = 16}: {readonly size?: number}) {
	return (
		<svg
			height={size}
			viewBox="0 0 24 24"
			width={size}
			xmlns="http://www.w3.org/2000/svg"
			fill="currentColor"
		>
			<title>Cursor</title>
			<path d="M11.925 24l10.425-6-10.425-6L1.5 18l10.425 6z" />
			<path d="M22.35 18V6L11.925 0v12l10.425 6z" />
			<path d="M11.925 0L1.5 6v12l10.425-6V0z" />
			<path d="M22.35 6L11.925 24V12L22.35 6z" opacity="0.6" />
			<path d="M22.35 6l-10.425 6L1.5 6h20.85z" />
		</svg>
	);
}

export function VSCodeIcon({size = 16}: {readonly size?: number}) {
	return (
		<svg
			width={size}
			height={size}
			viewBox="0 0 100 100"
			fill="currentColor"
			xmlns="http://www.w3.org/2000/svg"
		>
			<path
				fillRule="evenodd"
				clipRule="evenodd"
				d="M70.9119 99.3171C72.4869 99.9307 74.2828 99.8914 75.8725 99.1264L96.4608 89.2197C98.6242 88.1787 100 85.9892 100 83.5872V16.4133C100 14.0113 98.6243 11.8218 96.4609 10.7808L75.8725 0.873756C73.7862 -0.130129 71.3446 0.11576 69.5135 1.44695C69.252 1.63711 69.0028 1.84943 68.769 2.08341L29.3551 38.0415L12.1872 25.0096C10.589 23.7965 8.35363 23.8959 6.86933 25.2461L1.36303 30.2549C-0.452552 31.9064 -0.454633 34.7627 1.35853 36.417L16.2471 50.0001L1.35853 63.5832C-0.454633 65.2374 -0.452552 68.0938 1.36303 69.7453L6.86933 74.7541C8.35363 76.1043 10.589 76.2037 12.1872 74.9905L29.3551 61.9587L68.769 97.9167C69.3925 98.5406 70.1246 99.0104 70.9119 99.3171ZM75.0152 27.2989L45.1091 50.0001L75.0152 72.7012V27.2989Z"
			/>
		</svg>
	);
}

export function ExternalLinkIcon({size = 12}: {readonly size?: number}) {
	return (
		<svg
			xmlns="http://www.w3.org/2000/svg"
			width={size}
			height={size}
			viewBox="0 0 24 24"
			fill="none"
			stroke="currentColor"
			strokeWidth="2"
			strokeLinecap="round"
			strokeLinejoin="round"
		>
			<path d="M7 7h10v10" />
			<path d="M7 17 17 7" />
		</svg>
	);
}

export function MarkdownIcon({size = 18}: {readonly size?: number}) {
	return (
		<svg
			width={size}
			height={size}
			viewBox="0 0 22 16"
			fill="none"
			xmlns="http://www.w3.org/2000/svg"
		>
			<path
				fillRule="evenodd"
				clipRule="evenodd"
				d="M19.5 2.25H2.5C1.80964 2.25 1.25 2.80964 1.25 3.5V12.5C1.25 13.1904 1.80964 13.75 2.5 13.75H19.5C20.1904 13.75 20.75 13.1904 20.75 12.5V3.5C20.75 2.80964 20.1904 2.25 19.5 2.25ZM2.5 1C1.11929 1 0 2.11929 0 3.5V12.5C0 13.8807 1.11929 15 2.5 15H19.5C20.8807 15 22 13.8807 22 12.5V3.5C22 2.11929 20.8807 1 19.5 1H2.5ZM3 4.5H4H4.25H4.6899L4.98715 4.82428L7 7.02011L9.01285 4.82428L9.3101 4.5H9.75H10H11V5.5V11.5H9V7.79807L7.73715 9.17572L7 9.97989L6.26285 9.17572L5 7.79807V11.5H3V5.5V4.5ZM15 8V4.5H17V8H19.5L17 10.5L16 11.5L15 10.5L12.5 8H15Z"
				fill="currentColor"
			/>
		</svg>
	);
}

export function RemotionIcon({size = 18}: {readonly size?: number}) {
	return (
		<svg
			width={size}
			height={size}
			viewBox="0 0 340 351"
			fill="none"
			xmlns="http://www.w3.org/2000/svg"
		>
			<path
				d="M76.5299 0.030304C69.1759 0.429474 63.2497 1.59628 57.2775 3.8685C54.299 4.98926 49.4168 7.43039 46.7301 9.1192C35.4918 16.1661 26.925 26.7596 22.4573 39.0879C21.5668 41.529 19.1565 49.3128 17.6058 54.671C7.27339 90.489 1.40862 129.654 0.14969 171.107C-0.0498966 177.708 -0.0498966 193.43 0.14969 199.924C0.994094 227.405 3.61942 252.215 8.37879 277.517C10.3132 287.757 13.4145 301.513 15.2108 307.762C18.8801 320.459 26.3723 331.267 37.0271 339.189C44.1662 344.501 52.2724 348.063 61.2538 349.813C65.5833 350.658 71.2946 351.041 75.5012 350.765C81.3199 350.381 92.8653 348.831 102.246 347.157C144.527 339.619 183.585 326.124 219.004 306.81C241.434 294.574 260.61 281.324 279.11 265.25C297.549 249.252 313.27 232.042 327.103 212.728C330.312 208.26 331.924 205.65 333.536 202.365C337.681 193.89 339.631 185.461 339.615 176.035C339.615 167.253 337.957 159.454 334.38 151.47C332.661 147.617 331.018 144.853 327.333 139.603C313.761 120.273 298.7 103.431 280.338 87.0654C251.874 61.7025 218.067 40.8995 180.315 25.5006C172.132 22.1691 164.072 19.2367 154.369 16.0587C133.827 9.34949 108.402 3.53076 86.893 0.629089C83.5154 0.168518 78.9249 -0.0924988 76.5299 0.030304Z"
				fill="currentColor"
			/>
		</svg>
	);
}
